package com.itany.corejava.code06_面向对象.bms;

/**
 * @author 石小俊
 * @date 2024年01月17日 15:15
 */
public abstract class Account {

    private int id;         // 账户编号
    private String name;        // 户主姓名
    private String password;    // 账户密码
    private String personId;    // 身份证号码
    private String phone;       // 预留手机
    private double balance;     // 账户余额

    public Account() {
        // 在创建账户对象的时候,自动生成账户编号的值
        // 初始值1000,每次新创建的Account对象的卡号自增1,例如:1001、1002、1003...
    }

    /**
     * 存款方法,不允许被子类修改
     * @param money
     */
    public final void deposit(double money) {
        this.balance += money;
    }

    /**
     * 取款,子类根据业务需求进行重写,必须重写
     * @param money
     * @return
     */
    public abstract boolean withdrawMoney(double money);
}
